# 题目：有一个父类 Vehicle（交通工具）
# 创建子类 Car（汽车）、Bike（自行车）
# 分别实现各自特有的功能，同时继承基类的方法。
# 在主程序中创建不同交通工具的对象，并调用它们的方法来展示继承的作用。

# 以下是各个类的属性和方法列表：
# 父类 Vehicle：
#   currentSpeed：当前速度。
#   获取速度的方法 getSpeed ()
#   启动方法 start ()。

# 子类 Car：
#   numberOfDoors：车门数量。
#   color：颜色。
#   添加一个方法 performAutoParking()来实现自动泊车
#   显示车载娱乐系统信息的方法 showInfotainmentDetails()。
# 子类 Bike：
#   hasBasket：是否有车篮。
#   wheelSize：车轮尺寸。
#   一个调整座椅高度的方法 adjustSeatHeight()。
#   一个发出铃铛声音的方法 ringBell()。
from dataclasses import dataclass

@dataclass()
class Vehicle:
    currentSpeed: int

    def get_speed(self):
        print(self.currentSpeed)
        return self.currentSpeed

    def start(self):
        print("交通工具启动")

@dataclass()
class Car(Vehicle):
    numberOfDoors: int
    color: str

    def perform_auto_parking(self):
        print("自动泊车")

    def show_infotainment_details(self):
        print('展示娱乐信息')

    def start(self):
        print('汽车启动，使用钥匙，挂入D档')


@dataclass()
class Bike(Vehicle):
    has_basket: bool
    wheel_size: str = '中等'

    def adjust_seat_height(self):
        print('调整座椅高度')

    def ring_bell(self):
        print('响铃提醒路人')

    def start(self):
        print('自行车启动')

def judge_car():
    car = Car(100, 5, '绿色')
    car.start()
    print(car)

def judge_bike():
    car = Bike(25, False)
    car.start()
    print(car)


if __name__ == '__main__':
    judge_car()
    judge_bike()